System and method for providing guidance to a user of a website or application

ABSTRACT

A system and method assists a user in achieving one or more goals of the user or the operator of a web site, application or other media by comparing a series of two or more actions of a user to those of other users, and identifying whether a primary action has been requested or performed by the user, or determining if a first piece of information has been specified by the user as being in a first set, and a second piece of information has not been specified or has been specified in a non-committal manner, and then provides relevant information to the user to instruct the user how to perform the primary action or to notify the user of the consequences of not specifying the second piece of information or specifying it in a non-committal manner.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/920,376, entitled, “System and Method for Providing Guidance to aUser of a Website or Application” filed by on Mar. 13, 2018 by ShayanZadeh, Josh Royse, Danielle Chandler, Jared Crane, Ryan Koziel and EricBarnett, which is a continuation of U.S. patent application Ser. No.14/730,076, entitled, “System and Method for Providing Guidance to aUser of a Website or Application” filed by on Jun. 3, 2015 by ShayanZadeh, Josh Royse, Danielle Chandler, Jared Crane, Ryan Koziel and EricBarnett, which claims the benefit of U.S. Provisional Patent ApplicationSer. No. 62/007,081 entitled, “Method and Apparatus for ProvidingGuidance to a User of a Website or Application” filed by Shayan Zadeh,Josh Royse, Danielle Chandler, Jared Crane, Ryan Koziel and Eric Barnetton Jun. 3, 2014, each having the same assignee as the presentapplication and each is hereby incorporated by reference in itsentirety.

FIELD OF THE INVENTION

The present invention is related to computer software and morespecifically to computer software for providing guidance to a user,however it is related to other fields as well.

BACKGROUND OF THE INVENTION

Users who operate a web site or an application may provide commands tooperate the web site or application. This arrangement is suboptimal.What is needed is a system and method that can assist a user inoperating a web site or application.

Additionally, users may supply some, but not all, information to awebsite or an application. What is needed is a system and method toassist users in supplying information to a web site or application.

SUMMARY OF INVENTION

A system and method identifies one or more primary actions, actions auser may take to operate a web site or application, such as those thatindicate the user is having a positive experience with the web site orapplication. For each primary action, a series of two or more actionsare identified, that users who perform the primary action may take priorto performing the primary action for the first time. For at least oneaction in the series, a number of times the action is performed, withoutany performance of the primary action, is identified that indicates thatthe user may not be aware of the primary action or how to perform it.This number is considered a threshold, and may be identified byreviewing the number of times many other users have performed the actionor actions in the series at the time they perform the first primaryaction, and then taking a percentile number of performances of theaction or actions in the series at the time the first primary action isperformed, such as the 40^(th), 50^(th) or 60^(th) percentile, oranother similar measurement, such as the average number of performancesof the one or more actions in the series at the time the other usersperform the primary action for the first time. The threshold may applyto one or more types of actions in the series, and may be expressed as afunction.

Actions in the series may only trigger the threshold if they areperformed in an order, or they may trigger the threshold if they areperformed in any order.

The user's actions may be monitored and recorded, across multiplesessions, each session initiated by registration or logging in, in oneembodiment. If the user has not performed the primary action when thethreshold number of actions in the series are performed by the user, theuser may be informed of the existence of the primary action and offeredinstructions on how to perform the primary action.

The user may refuse, defer or accept the offer. If accepted, the user isprovided with instructions for each of one or more activities that makeup the primary action, and instruction for the next activity may beprovided one at a time as the user performs each activity.

Additionally, a system and method checks two pieces of information(referred to as a pair) that can be supplied by a user of a web site oran application, to determine if information supplied as the first in thepair has content that causes the first in the pair to be in a set ofpossible information supplied, and has information in the second set orhas information in the second set that is not noncommittal. If theinformation supplied in the first of the pair is within a set of lessthan all the possible information that may be supplied, but the user hasnot supplied information in the second of the pair, or has suppliedinformation in the second of the pair that is non-committal, the user isrequested to supply the second piece of information in the pair, andoptionally notified that users who have provided the first piece ofinformation in the manner they provided, have a higher probability ofachieving one or more of their goals of using the web site orapplication if they supply an answer (or an answer that is notnoncommittal) in the second piece of information. The two pieces ofinformation are selected from those supplied by users, where users whosupply the first piece, optionally within a subset of possible values,have a greater chance of achieving a goal of a user using the web siteor application if they also supply the second piece of information orsupply it with a non-committal value, where the second piece in the setmay be optional or may allow a non-committal answer.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block schematic diagram of a conventional computer system.

FIG. 2 is a flowchart illustrating a method of providing guidance to auser of a web site or application or other media according to oneembodiment of the present invention.

FIG. 3 is a flowchart illustrating a method of providing assistance to auser of a web site or application or other media according to oneembodiment of the present invention.

FIG. 4 is a block schematic diagram of a system for providing guidanceto a user of a web site or application or other media according to oneembodiment of the present invention.

FIG. 5 is a block schematic diagram of a system for providing assistanceto a user of a web site or application or other media according to oneembodiment of the present invention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

The present invention may be implemented as computer software on aconventional computer system, instructions embodied in a non-transitorycomputer media, or as a conventional computer system itself including ahardware processor coupled to a memory. Referring now to FIG. 1 , aconventional computer system 150 for practicing the present invention isshown. Processor 160 retrieves and executes software instructions storedin storage 162 such as memory, which may be Random Access Memory (RAM)and may control other components to perform the present invention.Storage 162 may be used to store program instructions or data or both.Storage 164, such as a computer disk drive or other nonvolatile (i.e.non-transitory) storage, may provide storage of data or programinstructions. In one embodiment, storage 164 provides longer termstorage of instructions and data, with storage 162 providing storage fordata or instructions that may only be required for a shorter time thanthat of storage 164. All storage elements described herein may includeconventional memory and/or disk storage and may include a conventionaldatabase. All system elements may include a hardware processor system ofone or more hardware processors coupled to a memory system of one ormore magnetic, electronic or other storage devices. All elements of asystem include any or all of at least one input, at least one output andat least one input/output. The only nonce word used herein is “means”,all other terms associated with system claims are to be interpreted asstructural.

Input device 166 such as a computer keyboard or mouse or both allowsuser input to the system 150. Output 168, such as a display or printer,allows the system to provide information such as instructions, data orother information to the user of the system 150. Storage input device170 such as a conventional floppy disk drive or CD-ROM drive accepts viainput 172 computer program products 174 such as a conventional floppydisk or CD-ROM or other nonvolatile storage media that may be used totransport computer instructions or data to the system 150. Computerprogram product 174 has encoded thereon computer readable program codedevices 176, such as magnetic charges in the case of a floppy disk oroptical encodings in the case of a CD-ROM which are encoded as programinstructions, data or both to configure the computer system 150 tooperate as described below.

In one embodiment, each computer system 150 is a conventional SUNMICROSYSTEMS T SERIES SERVER running the SOLARIS operating systemcommercially available from ORACLE CORPORATION of Redwood Shores,Calif., a PENTIUM-compatible personal computer system such as areavailable from DELL COMPUTER CORPORATION of Round Rock, Tex. running aversion of the WINDOWS operating system (such as XP, VISTA, or 7)commercially available from MICROSOFT Corporation of Redmond Wash. or aMacintosh computer system running the MACOS or OPENSTEP operating systemcommercially available from APPLE INCORPORATED of Cupertino, Calif. andthe FIREFOX browser commercially available from MOZILLA FOUNDATION ofMountain View, Calif. or INTERNET EXPLORER browser commerciallyavailable from MICROSOFT above, although other systems may be used. Eachcomputer system 150 may be a SAMSUNG GALAXY NEXUS III commerciallyavailable from SAMSUNG ELECTRONICS GLOBAL of Seoul, Korea running theANDROID operating system commercially available from GOOGLE, INC. ofMountain View, Calif. Various computer systems may be employed, with thevarious computer systems communicating with one another via theInternet, a conventional cellular telephone network, an Ethernetnetwork, or all of these.

Referring now to FIG. 2 , a method of providing guidance to a user of awebsite or application or other media is shown according to oneembodiment of the present invention.

An action a user can perform on a web site or application is identifiedas a primary action 210. The description below discusses actions on aweb site, though the present invention can be used on any application orother media as well. In one embodiment, an action is identified as aprimary action if the performance of the action indicates that the useris having a successful experience with the web site or otherwiseachieving at least one goal the user has in using the web site or atleast one goal of the operator of the web site. In one embodiment, asuccessful experience with the web site may be identified by those userswho spend more time than the average on the web site per day, who areengaged with the web site for a longer than average period of time, orsign up for additional services, or paid services on the web site, whichmay also be goals of the operator of the web site. A user's goal inusing the web site may be to receive messages from other users orreceive replies from other users to messages that the user has sent.Thus, if it is found that users who e-mail other users have a moresuccessful experience with the web site then users who do not e-mailother users, the action of e-mailing a user on the web site could beidentified as at least one primary action. The primary action can becomposed of several activities, such as filling in different fields ofan e-mail message and then pressing a send button. Goals are describedherein, but consequences may also be used instead or in addition togoals as used herein.

At least two user actions that are typically performed by a user beforea user performs the primary action for the first time are identified212. The two or more user actions are performed in a sequence, the orderof which may be predictable or random, with two or more of the actionsin the sequence typically being performed before the primary action isperformed for the first time. The actions of the sequence need not berequired to be performed before the user performs the primary action,but are typically performed before a user performs an action for thefirst time.

For example, on a dating website many users will browse profiles of theother users on the website, and then send a message to one or more suchother users. In this example, the primary action is the sending of amessage to another user. The sequence of user actions performed beforethe primary action is the registering of the user and browsing ofprofiles of the other users.

The sequence may contain not only multiple actions performed by theuser, but also multiple types of actions performed by the user. Forexample, the sequence may include the user registering as a female, andthen browsing a number of profiles, before sending a message as a userregistered as a female, which is the primary action. A differentsequence may include the user registering as a male, and then browsing anumber of profiles, before sending a message as a user registered as amale, a different primary action.

Step 212 includes identifying a threshold number of actions in thesequence that can be used to determine that a user who has performedthat many actions in the sequence without performing the correspondingprimary action may not be sure of how to perform the primary action.Such number of actions may be identified by identifying the number ofsuch actions performed by many other users at the time they perform theprimary action for the first time. The average may be used in oneembodiment. Other numbers may be used as the threshold in place of theaverage, for example using a 60th percentile, or a 40th percentile, orany other percentile. The number of profiles browsed in each of thesetwo different sequences described above may be different, as the averagenumber of browsing actions performed before a primary action isperformed by a user for the first time, or the number of profilesbrowsed in the same percentile of browse actions performed beforesending the first message for each sequence may be different from oneanother, while the number of times the user registers is always the samenumber, 1.

In one embodiment, an action required to be performed before the usercan perform the primary action does not count towards the requirement ofthe number of actions in a sequence being greater than one.Additionally, in one embodiment, the performance of merely any activitythat can be performed on a web site or in an application is notconsidered the performance of an activity in the series, as the seriesis defined as a specified subset of all such activities in oneembodiment.

In one embodiment, if there are multiple types of actions in thesequence, the number of only one type of action may be used as thethreshold, or the number of each of more than one type of action may beidentified as the threshold, with either one, or both, thresholds to bemet. In another embodiment, a function may be specified as thethreshold, such as “the total number of times both types of actions havebeen performed are equal to N”, allowing the performance of one type ofaction to be substituted for a different type, according to thefunction. Other types of functions may be used.

For example, to identify when a user who has browsed profiles (thesequence of actions) has typically sent a message to another user (theprimary action), the number of profiles browsed by users at the timethey sent their first message may be identified. The number of profilesbrowsed by many such users at the time they send their first message maybe averaged to identify an expected number of profiles browsed by theuser at the time a typical or average or certain percentile user sends amessage to another user, and this number may be used as the threshold. Alower percentile than the 50^(th) may be used if it is believed that theaverage is distorted higher by users who waited to send their firstmessage because they did not know how to send one, and a higher numbermay be used if it is believed that most users did not wait to send amessage because of a lack of knowledge of how to do so, and it isdesirable not to interrupt the user frequently to offer instructions.

The threshold can be different for different types of users, forexample, based on user input as noted above. Persons who have identifiedthemselves as male may have one threshold and persons identified asfemale may have another, with the thresholds identified as describedabove, but only using users who identified themselves as the same typeof user, in one embodiment. Thresholds may be adjusted based onuser-identified education level, or based on exhibited sophistication ofthe user, such as may be evidenced by their initial actions. Forexample, if the user performs one type of primary action far before thethreshold with respect to the sequence, the thresholds for other primaryactions may be increased.

Any number of primary actions may be identified, and the sequences ofactions and threshold information for each primary action, such as anumber or function, may be identified, and stored, as indicated by thedashed line in the Figure.

Conventional registration information for users is received, such as auser identifier and password, and certain values are initialized for theuser 214. In one embodiment, a repeat counter, used as described below,is initialized for the user to zero for each primary action identifiedabove, and the threshold or thresholds identified for each primaryaction identified in step 212 may be assigned to a threshold orthresholds for the user. All primary actions are defined as active. Thepurpose for each of these values is described in more detail below. Themethod continues at step 218.

After the session in which a user registers, the user may log in usingconventional login techniques 216, such as supplying or making availablea conventional user identifier and optionally a password, and the methodcontinues at step 218. Thus, the method may be used across multiplesessions, with the threshold applicable to actions the user performsacross one or more sessions.

At step 218, a request to perform an action is received by a server,which performs the action and records the performance of the actionassociated with the user identifier of the user who registered or loggedin.

A first active primary action selected 220 from those identified asdescribed above. A determination is made as to whether the user hasperformed, or caused to be performed, via multiple iterations of step218, the threshold number or numbers of actions in the sequence ofactions identified for the selected primary action without performingthe selected primary action 222. There may be multiple types of actionsin the sequence, with one such type of action having a threshold, andthe others having no thresholds, or multiple types of actions may havethresholds, or there may only be one type of action, having a thresholdof two or more.

In one embodiment, actions in the sequence must be performed in an orderrelative to one another in order to meet the threshold, such as byperforming at least three actions of one type, then performing at leasttwo actions of another type and then performing at least four actions ofthe first type. The threshold would be met upon the performance of allthe specified actions in the order identified. If the user performs 7actions of the first type, followed by two actions of the second type,the threshold would not be met until the user performed four actions ofthe first type following the performance of the two actions of thesecond type. In another embodiment, the sequence of actions may beperformed in any order to meet the thresholds, or some primary actionsmay require the sequence of actions to be performed in an order whileother primary actions do not require an order for their thresholds to bemet,

If not 224, if there are more active primary actions 240, the nextactive primary action is selected 242, and the method continues at step222 using the newly selected primary action. If the user has performedthe primary action 222 without performing the threshold number ornumbers of actions in the sequence 222, the method continues at step238. If the user has performed the threshold number of actions in thesequence for the selected primary action without performing the selectedprimary action 224, the user is notified that the selected primaryaction is available to be performed, and the user is offeredinstructions as to how to perform the selected primary action 226. Theuser may indicate that the offer is accepted, that the offer is notaccepted, but the offer should be repeated at a later time (i.e.deferred), or that the user does not wish to accept the offer and doesnot wish to have the offer repeated for the primary action (i.e.rejected). If the user indicates that the user does not wish to acceptthe offer and does not wish to have the offer repeated for the primaryaction 230, the primary action is set as inactive 238, and the methodcontinues at step 240.

If the offer is deferred 230, if a repeat counter for the primary actiondoes not exceed a threshold, the repeat counter for the primary actionis incremented, and the threshold or thresholds for the selected primaryaction is increased, for example by 20% 236, and the method continues atstep 240. In one embodiment, the threshold for the repeat counter may beinfinite, and in another embodiment, if the repeat counter for theselected primary action reaches the threshold, the option to defer isnot presented to the user.

If the offer is accepted 230, instructions are provided to the user asthe user steps through a series of one or more actions that make up theprimary action 232. The series of actions may include moving from oneweb page to another, or they may include entering data into one or morefields on a single web page, or both. Other actions may be included inthe series of one or more actions that make up the primary action. Thusfor example, to send a message, a user may be directed to press a buttonon the web page being used to browse a profile of another user, and thenmay be instructed to fill in a subject line, then, when the userfinishes writing the subject line, the user may be instructed to writethe body of the message, and then, when the user has completed writingthe body of the message, the user may be instructed to press a ‘send’button. Each such instruction may be provided one at a time only afterthe prior action in the series has been completed, or started.Completion of data entry may be detected when a user tabs out of afield, or otherwise indicates that they are finished performing suchdata entry. The method continues at step 238.

Referring now to FIG. 3 , a method of providing assistance to a user ofa web site or application or other media is shown according to oneembodiment of the present invention. Information pairs are identified310, for example, by a system administrator. In one embodiment, aninformation pair is two prices of information, supplied together orseparately, and when the first part of information is optionallysupplied with a value in a set of one or more values, the user hasgreater chance of achieving a goal of theirs or the operator of the website or the application if the user also supplies informationcorresponding to the second piece of the pair than if they do not supplyinformation corresponding to the second piece of the pair.

For example, in a dating web site if a user indicates that they place ahigh degree of importance on the education of other users, the user mayhave greater probability of achieving their goal or the goal of theoperator of the web site or application or other media if they specifywhat their education level is, than if they don't specify an educationlevel or specify the information in a non-committal manner, such as“decline to specify”. In this example, the first piece of theinformation in the pair is the degree of importance the user indicatesthat education plays in their selection of another user, with possiblevalues of high, medium or low, and the second piece of the informationin the pair is the highest education level they attained. In thisexample, the set of values in the first piece that the user can specifythat may cause the user to have greater chance of achieving a goal oftheirs or the operator of the web site or application or other media ifthe second piece of the information is also specified is a value of“high”. The two pieces of information are text based information in thisexample, and may be supplied as answers to questions. In one embodiment,a photo or its existence is not considered the second piece of aninformation pair.

In one embodiment, the first piece of the information must be specifiedas being within a set of at least one of the values that may bespecified, but not all of the values that may be specified, to causespecification of the second piece of the information to help the user toachieve greater probability of achieving a goal of theirs or of theoperator of the web site or application, namely the ability to causeother users of the web site to message that user, or to respond tomessages sent by the user, either or both of which may be prerequisitesof obtaining a date, another goal of a dating web site or application.In another embodiment, the first piece of information is not so limited:that is, any value specified for the first piece of information maycause the specification of the second piece of information to cause ahigher probability of such a goal to be achieved. Pairs of informationmay be identified using conventional regression analysis on informationprovided by many users who have achieved one or more goals of the website or application or achieved them more frequently, than users whohave not achieved such a goal. For example, one may perform regressionanalysis on the users who have received the highest average number ofmessages and/or replies per review of their profile.

To identify an information pair, identifiers of each piece ofinformation are provided and received, optionally along with the set ofone or more values of the first piece of information in the pair thatwill cause answers to the second piece of the pair to increase thelikelihood of achieving at least one goal of the web site orapplication.

It is noted that the specification of the second piece of theinformation with any value other than leaving it blank will assist theuser in achieving at least one goal of theirs or the web site orapplication. In one embodiment, a specification of a noncommittalanswer, such as “I do not wish to specify” is not considered to provideinformation, and is considered to be the same as leaving the answerblank.

Any number of one or more information pairs may be identified using thecriteria specified above as part of step 310.

A user is provided with an opportunity to supply information, includingoptional information 312. To supply information, the user may answer aquestion, either with a text-based free form answer or with amultiple-choice answer. The question may be a question about the user ofthe web site or application or other such users, or a fictional usersuch as the user's ideal mate. Optional information is information thatis not required to be supplied, or as noted above, may be supplied in amanner that does not answer, or fully answer the primary question theinformation is to answer or provide information about the primarysubject of the information to be supplied. Step 312 is consideredcomplete when the user indicates that the user is done supplyingwhatever, if any, information the user is going to supply at the time.Such an indication may be received when the user tabs out of a userinterface element in which the information is to be supplied orotherwise enters a field below the field in which information can besupplied, or requests to move to a different page or user interfacedisplay.

When the user supplies information, the first pair of informationspecified in step 300 is selected 314, and a check is made as to whetherthe user has supplied the information from the first piece of theselected pair using a value in the set of one or more values specified,and was given an opportunity to supply the other piece but did notsupply it 316. In one embodiment, all possible values are considered tobe in the set of one or more values and in another embodiment, onlythose specified in step 310 are in such set.

If the user has supplied neither piece, or both pieces (with what issupplied in the second piece actually providing information about itsprimary subject, as opposed to non-committal information, such as“decline to specify”, which is treated as not having supplied the secondpiece of information) or the user supplied a value of the first piecethat was not in the set of one or more values indicated 318, the methodcontinues at step 336. Otherwise 318, the method continues at step 330.

At step 336, if there are more pairs, the next pair is selected 338, andthe method continues at step 316 using the newly selected pair.Otherwise 336, the method continues at step 312.

At step 330 the user may be notified that other users who supplied theinformation in the second piece under the circumstances described hereinhad a higher probability of achieving at least one of the goals oftheirs or the operator of the web site or application, the user may beoptionally notified of such goal, the user may be asked if the userwishes to supply information corresponding to the second piece of thepair, and a response is received from the user 330. In one embodiment,the response received from the user may be implicitly received, forexample if the user repeats the operation to move to a different fieldor page (the implicit response being “no”), or supplies or starts tosupply the information in the second piece (the implicit response being“yes”). In another embodiment, the user is provided an explicitopportunity to respond. If the user affirmatively responds 332, theuser's provided with an opportunity to supply the second piece ofinformation 334, and such information may be received as part of step334. the method continues at step 336. If the user response is negative,332, the method continues at step 336.

It is noted that the assistance and guidance described herein may beprovided at the time that the user may require it. Thus, the series ofactions could end with an action in which the logical next action wouldbe to perform the primary action. The instructions would appear at suchtime, to allow the user to receive instructions at a time they may beneeded or desired by the user. The instructions based on pairs ofinformation are described herein as being displayed at the time the useris about to omit the second piece of information in the pair or providea value, thus providing such instructions at the time the user would beable to provide the second piece of information or one that isn'tnon-committal.

There may be several versions of messages provided to the user asinstructions or notifications as described herein (e.g. at step 232 or330), with the version provided to the user being selected at the timethe instructions or notifications are provided or at another time. Theversion text or audio used in the messages provided to the user asdescribed herein may be selected using conventional A-B testing toidentify messages that cause the user to take the action suggested. Suchversions of messages may be selected using conventional regressionanalysis, and/or may be selected based on weighted averages ofinformation supplied by the user, information related to the user, or ofactions taken by the user, and that of other users. For example, oneversion of message for a pair or a primary action may be found to workbest if the user is male and has been registered for less than 4 weeksbased on other similar users. The system administrator may provide inputto the selection process or initial input, for example, suggestingcertain messages for users having certain information, and such messagescan be shown more frequently to such users than other messages, at leastinitially. The selection criteria may change over time based onconventional machine learning techniques or information received fromthe system administrator based on observations of samples of users.

Such messages may be context specific, based on what the user is doingat the time, and what the user has done. For example, some or allmessages may reference one or more of the pieces of information providedby the user.

In one embodiment, messages provided to the user educate the user as tohow the suggestions can help the user achieve their goals in using theweb site, application or other media. The messages may indicate thestatistics of other users who supplied information corresponding to thesuggested changes or corresponding to their currently suppliedinformation, for example, “only 10 of users with no education levelspecified receive messages, but 80% of those who specify an educationlevel receive messages.”

In one embodiment, instead of recommendations based on whether the fieldis blank or non-committal, the recommendations are based on whether thesecond piece of information has or includes a certain value or option.In one embodiment, this may be performed without regard to content of afirst piece of information in the pair.

In one embodiment, one of the elements of the set of informationspecified for the first piece of information may include a “notprovided” option, such that the second piece of information triggers arecommendation if the first piece is not provided. In anotherembodiment, the “not provided” option may not be in the set for thefirst piece of information.

System.

Referring now to FIG. 4 , a system for providing assistance to a user ofa web site or application or other media is shown according to oneembodiment of the present invention.

Communication interface 402 includes a conventional TCP/IP-compatiblecommunication interface that allows elements 410-434 to communicate withuser systems 408 via network 409. User systems 408 may includeconventional personal computer systems, or smart devices. Network 409includes one or more conventional networks, including Ethernet networks,networks that make up the Internet, or both.

User interface manager 418 receives a user interface including fields inwhich the user can supply information, and actions the user can request,and user interface manager 418 stores such fields and actions intosystem storage 406. In one embodiment, the user interface operates aconventional dating web site or application, though other functions maybe used. A conventional dating web site allows users to describecharacteristics of themselves and other users in whom they areinterested, search or browse other users, message other users andrespond to messages, and arrange dates via such messages, which the pairof users would then both attend. Any of these functions may be providedin the manner described herein. User interface manager 418 may assignunique identifiers to each such field and action, or the fields andactions may be received with unique identifiers, and such uniqueidentifiers are stored associated with the fields and actions in systemstorage 406.

A system administrator uses primary action manager 410 to identifyprimary actions using the unique identifiers of each action describedabove. If a primary action includes several activities, each having anaction identifier, the first such identifier may be used. Primary actionmanager 410 stores each primary action identified in system storage 406.The system administrator uses sequence/threshold manager 412 to view theprimary actions stored in system storage 406, and for each primaryaction, identifies the sequence of two or more actions for each primaryaction viewed using the unique identifiers assigned to each such action,and identifies thresholds described above for each primary actionviewed, and sequence/threshold manager four and 12 stores theidentifiers of the actions and the sequences and the thresholds,associated with the primary action in system storage 406. For example,if the threshold number of browses of other users profiles is 25 beforea message is sent to one of the user whose profiles are browsed, theidentifier for the action of browsing is stored associated with theidentifier of the action of sending a message, associated with thenumber 25 in system storage 406. There may be any number of primaryactions, sequences, and thresholds identified and stored in this manneras described above.

Any number of users may each register an account usinglogin/registration manager 414. Login/registration manager 414 receivesa user identifier and a password from each user, and stores suchinformation in user information storage 404. Login/registration manager414 also initializes the repeat counter's for each primary action storedin system storage 406, sets thresholds for the user for each primaryaction by copying them from system storage 406 to user informationstorage 404, and sets all primary actions for the user as active, all inuser information storage 404. When the user has completed registration,login/registration manager 414 stores a cookie on the user device fromwhich the user has registered, or stores similar information into securestorage on the user device, or provides other similar information, suchinformation including a unique session identifier whichlogin/registration manager 414 stores associated with the useridentifier in user information storage 404. Each other element may readthe user identifier from such information stored on the user device asneeded. Login/registration manager 414 then signals user interfacemanager 418.

The user may log out of, or time out of, the system of FIG. 4 (otherthan user device 408 and network 409), and then log back in to suchsystem using a different session via login/registration manager 414. Theuser supplies a user identifier and password to login/registrationmanager 414, and login/registration manager 414 validates useridentifier password using conventional techniques via the informationstored in user information storage 404. Once logged in, the user isissued a unique session identifier by login/registration manager 414,which stores such information into user information storage 404associated with a user identifier user, and stores the sessionidentifier onto the user device using conventional techniques asdescribed above. Login/registration manager 414 signals user interfacemanager 418.

When signaled, user interface manager 418 reads the cookie or securestorage information or other similar information on the user device anduses it to identify the user identifier he the information stored inuser information storage 404. User interface manager 418 then providesthe user interface stored in system storage 406 with user interfaceelements such as buttons or links allowing the user to perform actionson the website or via the application, and receives from the user arequest to perform any action that may be performed on the website, orvia a mobile device, in which case a front end to the various componentsof the system of FIG. 4 (other than user device 408 and network 409) mayreside on the user device 408 and communicate with the system of FIG. 4(other than user device 408 and network 409) as described herein. Thefront end may provide a user interface, and may perform some of thefunctions described herein, allowing some of the components of FIG. 4(other than user device 408 and network 409) to reside in part on theuser device 408.

As it receives a request to perform an action from the user, userinterface manager 418 stores the unique identifier of the requestedaction associated with the user identifier of the user requesting theaction to be performed in user information storage 404, optionally,along with the current date and time retrieved from an operating system(not shown). User interface manager 418 then supplies the useridentifier of the user who requested the action to thresholddetermination manager 422. Threshold determination manager 422 selectsthe first active primary action, from those specified in system storage406, stores into user information storage 404 the identifier of theselected primary action associated with the user identifier of the user,and determines whether the user has performed the actions in thesequence corresponding to the primary action and stored in systemstorage 406 a number of times corresponding to the threshold associatedwith such primary action stored for the user in user information storage404 without performing the selected primary action. If not, thresholddetermination manager 422 determines if there are more unselected (forthat action requested by the user) active primary actions, and if soselects the next active primary action, and repeats the processdescribed herein using the newly selected active primary action. Ifthere are no more active primary actions, threshold determinationmanager 422 signals user interface manager 418, which then allows a userinterface manager 418 to receive the next subsequent request from theuser, and the process described above repeats using such request asdescribed herein.

If the user has performed or requested the primary action, for examplebecause the action requested was the primary action, thresholddetermination manager 422 sets the primary action inactive for the userin user information storage 404. Setting a primary action inactive onlysets that primary action inactive for one user in one embodiment of thepresent invention. Threshold determination manager 422 then determinesif there are more primary actions and either selects a next primaryaction and repeats the process using the newly selected primary actionas described above, or signals user interface manager 418 as describedabove.

If the action corresponding to the request causes the threshold of theseries the selected primary action stored for the user in userinformation storage 404 to be met or exceeded, threshold determinationmanager 422 provides the user identifier of the user and identifier ofthe primary action selected to notification manager 426.

When it receives such information, notification manager 426 notifies theuser that the selected primary action is available to be performed andoffers the user instructions on how to perform the selected primaryaction. Such offer may be received with the user interface informationor with the threshold information as described above, and stored insystem storage 406. If the user rejects the offer and indicates that itshould not be repeated, notification manager 426 sets the primary actionfor the user to be inactive in user information storage 404, and signalsthreshold determination manager 422 with the identifier of the user.Threshold determination manager 422 determines if there are additionalprimary actions that are active that have not been selected for the mostrecent action requested by the user, and if so, selects the next primaryaction and repeats the process as described herein using the newlyselected primary action, and if there are no more primary actions thatare active and not selected for the most recent action requested,signals user interface manager 418 as described above.

If the user defers the offer, notification manager 406 provides theidentifier of the selected primary action and the user identifier torepeat manager 434. When it receives such information, repeat manager434 increments in user information storage 404 the repeat counter forthe primary action corresponding to the identifier it receives and forthe user corresponding to the identifier it receives, and, as describedabove, increases the threshold or thresholds for the seriescorresponding to such primary action for the user in user informationstorage 404. Repeat manager 434 provides the user identifier it receivesto threshold determination manager 422, and threshold determinationmanager 422 determines if there are additional primary actions that areactive that have not been selected for the most recent action requestedand if so, selects the next primary action and repeats the process asdescribed herein using the newly selected primary action. If there areno more primary actions that are active and not selected for the mostrecent action requested, threshold determination manager 422 signalsuser interface manager 418 as described above. If the repeat counterexceeds a threshold, repeat manager 434 sets the primary action for theuser to be inactive in user information storage 404, before providingsuch information to threshold determination manager 422.

If the user accepts the offer, notification manager 426 sets the primaryaction for the user to be inactive in user information storage 404 andprovides the identifier of the primary action and the identifier of theuser it received to primary action instruction manager 432. Primaryaction instruction manager 432 provides such instructions to the user inone embodiment.

For each primary action, the system administrator may provide with theprimary action information described above instructions that indicatehow the user can perform the primary action, and such instructions arestored in system storage 406. Other conventional manners providinginstructions may be used, including a video, or specially designed userinterfaces that appear identical to the user interface the user will useto perform the primary action without the instructions, but also containinstructions displayed on the display screen and at the location of theuser interface control the user would be used to perform the primaryaction.

In one embodiment, user interfaces used with all primary actions containa software flag for each primary action that acts as a switch thatallows the display of the instructions with the user interface controls.In such embodiment, primary action instruction manager 432 sets the flagfor the user and the primary action in user information storage 404 toindicate that the instructions should be displayed to the user, andsignals user interface manager 418 to redisplay the currently displayeduser interface. User interface manager 418 checks the flags as itdisplays its various user interface elements to the user, and if a flagis set, displays instructions corresponding to such flag as the userencounters the user interfaces associated with the various primaryactions. Such an arrangement is provided by the system administrator touser interface manager 418 along with the user interfaces that aredisplayed to the user in the normal course of operation.

Once the user has completed performing the primary action associatedwith the flag, or aborts performing the activities of the primary actionand uses a user interface control to perform a different primary action,user interface manager 418 clears the flag for the primary action andthe user in user information storage 404.

In one embodiment, when the user accepts the offer, no additional checksfor providing instructions for other primary actions are performed forthe request for the action that triggered the instructions to bedelivered. In such embodiment, user interface manager 418 could simplyreceive the next request from the user. In another embodiment, suchchecks are performed, in which case user interface manager 418 signalsthreshold determination manager 422, with the identifier of the userthat it retrieves from the cookie or secure storage, and thresholddetermination manager 422 identifies the currently selected primaryaction stored for the user in user information storage 404. Thresholddetermination manager 422 determines if there are additional primaryactions that are active that have not been selected for the most recentaction requested, and if so selects the next primary action and repeatsthe process as described herein using the newly selected primary action,and if there are no more primary actions that are active and notselected for the most recent action requested, signals user interfacemanager 418 as described above.

Referring now to FIG. 5 , a system for providing assistance to a user ofa website or an application or other media is shown according to oneembodiment of the present invention.

Communication interface 502 includes a conventional TCP/IP-compatiblecommunication interface that allows elements 510-530 to communicate withuser systems 508 via network 509. User systems 508 may includeconventional personal computer systems, or smart devices. Network 509includes one or more conventional networks, including Ethernet networks,networks that make up the Internet, or both.

The system of FIG. 5 may be part of the same system of FIG. 4 , sharingcommunication facilities and user devices, for example.

User interface specification manager 514 receives a user interfacespecification, including fields in which a user enters information, suchas information about that user, or about other users that a user wouldprefer to meet, and stores such information into system informationstorage 506. In one embodiment, user interface specification manager 514assigns a unique identifier to each field received as part of the userinterface specification, and stores the field identifier, associatedwith the field, in system information storage 506. In anotherembodiment, user interface manager 514 receives such unique identifierswith the fields and stores them into system information storage 506.

Information pair identifier 510 receives the identifiers of eachinformation pair as described above, and optionally the set of one ormore values for the first piece of information in the pair, as describedabove. Information pair identifier 510 stores such information intosystem information storage 506. Any number of one or more informationpairs may be specified in this manner. Such information may be receivedand updated by the system administrator at any time, or may beautomatically identified and updated, by checking results such asmessages received against various pairs and values of information in thepairs.

User interface manager 512 provides to a user of a website or anapplication the user interface specified in system information storage506, and allows the user the opportunity to include information in thefields specified as part of the user interface. As noted above, some ofthe fields of information may be optionally filled in, so that the usermay leave them blank if desired, and some of the fields of informationmay be specified in a manner that is non-committal as indicated above.If the user enters information into a field, user interface manager 512stores the information and the field identifier for such field into userinformation storage 504, associated with the user identifier of theuser. In one embodiment, the user identifier may be received by userinterface manager 512 from a cookie, or secure storage, or the user mayregister with user interface manager 512, or log in with user interfacemanager 512, and such user identifier is provided or received asdescribed above by user interface manager 512 using conventionaltechniques, and, upon registration, is stored into user informationstorage 504. If a field is displayed to a user, but no information isreceived from the user, user interface manager 512 stores into userinformation storage 504 associated with user identifier, an indicationthat the field was displayed to the user but that the user did notprovide any information.

Each time a user indicates that they are done with a field, either byentering a field below such field, or by pressing a button or other userinterface control indicating that the user is done with one or morefields on the page or portion of the user interface being viewed, userinterface manager 512 provides all of the identifiers of all such fieldsto pair check manager 516, which selects the first identifier of anysuch fields.

Pair check manager 516 selects the first information pair stored insystem information storage 506, and checks to see if the user: A)supplied a value for the first piece of information in the selected pairthat was in the set of information associated with such pair, and B) wasgiven the option to supply information for the second piece of theselected pair (or was supplied in any value if the set includes allpossible values), but either: 1) did not supply, or 2) supplied anoncommittal version of, such information. In one embodiment, anoncommittal version of such information is one of several options thatmay be supplied as the second piece of information, such as a multiplechoice answer that is supplied in a question and answer format. Thevarious choices may be supplied to, and stored by, user interfacespecification manager 514 with the fields described above, andnoncommittal choices may be marked by the system administrator using assuch to allow pair check manager 516 to make this determination. Userinterface specification manager 514 may receive and store in systemstorage 506 words used in non-committal information, and pair checkmanager 516 may scan the information received for such words todetermine that non-committal information has been provided.

Pair check manager 516 may use the indication that the field wasdisplayed to the user but that the user did not supply any informationdescribed above to determine if the user was given the opportunity toprovide the second piece of information in the selected pair, but didnot provide it. In one embodiment, the set of information of amultiple-choice answer specifies the answers that are to be consideredin the set, and pair check manager 516 identifies whether the firstpiece of information contained in a multiple-choice answer was specifiedas being in the set.

If pair check manager 516 determines that neither piece of informationin the selected pair, or both pieces of information in the selectedpair, were provided by the user, or that the user supplied the firstpiece of information that was not in the set of information for theselected pair, pair check manager 516 identifies if there are more pairsin system information storage 506, and if so, selects the next pair andrepeats the process for the newly selected pair as described herein.

If the second piece of information in the selected pair was not providedby the user, but the user provided the first piece of information,optionally in a manner that placed it in the set of information, paircheck manager 516 signals notification manager 530 with the identifierof the field of information being checked, and a unique identifier ofthe pair, and notification manager 530 supplies to the user a messagethat is received with the pair and stored with the pair in systeminformation storage 506 that indicates that users who supplied thesecond piece of information together with the first piece of informationhad a higher probability of meeting a goal of their or the operator ofthe web site or application, and reminds the user to supply the secondpiece of information. In one embodiment, such message is supplied bynotification manager 530 in an area nearby the field in which the usercould supply the second piece of information.

If there were more fields for which the user indicated being done asdescribed above, the next such field is selected by pair check manager516, and the process of checking the field against field pairs andprocessing such checking as described above is repeated for the newlyselected field indicated as being done. If there are no more suchfields, pair check manager 516 signals user-interface manager 512. Ifthe user had requested a new page, or different user interface display,user interface manager 512 waits to receive the signal from pair checkmanager 516 before fulfilling such request in one embodiment, and thenfulfils the request. In this manner, one or more messages may bedisplayed to the user to remind the user to supply the second piece ofinformation displayed on the user interface for any pair.

In one embodiment, recommendations and suggestions described herein areenforced, meaning the user must comply to proceed. In the systemdescriptions below, the entity making the recommendation checks forcompliance and re recommends if the user does not comply. Either or bothuser interface managers 418 and/or 512 will not allow the user toperform other functions until the user complies with the messagesprovided in one embodiment.

In one embodiment, the messages may be turned off by the user so thatthey will not appear and no checks to determine if such messages shouldbe made will be performed for such user who so indicates. In suchembodiment, either or both user interface managers 418 and/or 512 maysupply a user interface to allow the messages to be turned off and whenthe user uses the user interface to turn the messages off, either orboth user interface managers 418 and/or 512 will not initiate thechecking for and providing of messages as described herein.

In one embodiment, the messaging features of the present invention maybe turned on or off by the amount of time since the user firstregistered to the web site, application or other media. In suchembodiment, login/registration manager 414 or user interface manager 512or both record the date of the user's registration in user informationstorage 404 or 504 Either or both user interface managers 418 and/or 512subtract the current date retrieved from a system clock of an operatingsystem (not shown) and then only initiate the process that check todetermine whether messages should be provided to the user if thedifference is above or below a threshold, or between or outside of, twothresholds. In one embodiment, certain requirements to send messages maybe relaxed or eliminated based on these same triggers, so, for example,messages may be provided to a user if the user has not provided thesecond piece of information, even if the first piece of information isnot in the corresponding set, after a threshold amount of time haselapsed from the date of the user's registration.

SUMMARY

Described herein is a method of providing instructions regardingperforming a primary action, including: identifying a threshold numberof two or more other actions, each other action different from theprimary action, the threshold corresponding to a statistic concerning anumber of times other users who performed the primary action performedat least one of the other actions in the two or more before the firsttime such other users performed the primary action for their respectivefirst time; monitoring via a computer system including a hardwareprocessor system coupled to a memory system, a number of times a userwho has not yet performed the primary action has performed the at leastone of the other actions; and responsive to the number of times the userwho has not yet performed the primary action had performed the at leastone of the other actions meeting or exceeding the threshold, performingat least one selected from a set of actions including: informing theuser of an existence of the primary action; offering instructions to theuser regarding how to perform the primary action; and providinginstructions to the user regarding how to perform the primary action.

The method includes an optional feature whereby the statistic includes apercentile.

The method includes an optional feature whereby the monitoring isperformed across multiple sessions, each session corresponding to anidentification of the user to a computer system for the purpose ofreceiving access to that computer system.

The method includes an optional feature whereby the other users includea subset of all users of a website who meet at least one criteriaindicating success of the user or of an operator of the website.

The method includes an optional feature whereby the two or more otheractions are identified responsive to a type of the user.

The method includes an optional feature whereby: the two or more otheractions include a sequence of other actions; the threshold is responsiveto other users performing in the sequence the two or more other actions;and the monitoring step is responsive to the user performing in thesequence the at least one of the other actions.

The method includes an optional feature whereby the performing at leastone selected from the set of actions includes providing theinstructions, said instructions including a sequence of instructionsregarding two or more steps in performing the primary action.

Described herein is a system for providing instructions regardingperforming a primary action, including: a threshold determinationmanager having an input coupled to receive an indication of each of twoor more actions performed by each of two or more users and an identifierof the user in the two or more who performed each action, and forreceiving a threshold corresponding to a statistic concerning a numberof times other users who performed the primary action performed at leastone other action in two or more other actions before the first time suchother users performed the primary action for their respective firsttime, the threshold determination manager for identifying a number oftimes a user who has not yet performed the primary action has performedthe at least one of two or more other actions, each other actiondifferent from the primary action, and each other action and the primaryaction being a portion, but not all, of the two or more actionsperformed by the user, and for, responsive to the number of times theuser who has not yet performed the primary action had performed at leastone of the other actions in the two or more other actions meeting orexceeding the threshold number of times, providing a signal at an outputthat identifies the user; and a primary action instruction managerhaving an input coupled to the threshold determination manager outputfor receiving the signal, the primary action instruction manager forproviding at an output to the user at least one selected from a setincluding: information about an existence of the primary action; anoffer of instructions regarding how to perform the primary action; andinstructions regarding how to perform the primary action.

The system includes an optional feature whereby the statistic includes apercentile.

The system includes an optional feature whereby the two or more actionsare performed across multiple sessions, each session corresponding to anidentification of the user to a computer system for the purpose ofreceiving access to that computer system.

The system includes an optional feature whereby the other users includea subset of all users of a website who meet at least one criteriaindicating success of the user or of an operator of the website.

The system includes an optional feature whereby the two or more otheractions is identified responsive to a type of the user.

The system includes an optional feature whereby: the two or more otheractions include a sequence of other actions; the threshold is responsiveto other users performing in the sequence the two or more other actions;and the monitoring step is responsive to the user performing in thesequence the at least one of the other actions.

The system includes an optional feature whereby the primary actioninstruction manager provides at the primary action instruction manageroutput the instructions regarding how to perform the primary action,including a sequence of instructions regarding two or more steps inperforming the primary action.

Described herein is a computer program product including anon-transitory computer useable medium having computer readable programcode embodied therein for providing instructions regarding performing aprimary action, the computer program product including computer readableprogram code devices configured to cause a computer system to: identifya threshold number of two or more other actions, each other actiondifferent from the primary action, the threshold corresponding to astatistic concerning a number of times other users who performed theprimary action performed at least one of the other actions in the two ormore before the first time such other users performed the primary actionfor their respective first time; monitor via a computer system includinga hardware processor system coupled to a memory system, a number oftimes a user who has not yet performed the primary action has performedthe at least one of the other actions; and responsive to the number oftimes the user who has not yet performed the primary action hadperformed the at least one of the other actions meeting or exceeding thethreshold, perform at least one selected from a set of actionsincluding: informing the user of an existence of the primary action;offering instructions to the user regarding how to perform the primaryaction; and providing instructions to the user regarding how to performthe primary action.

The computer program product includes an optional feature whereby thestatistic includes a percentile.

The computer program product includes an optional feature whereby thecomputer readable program code devices configured to cause the computersystem to monitor perform said monitoring across multiple sessions, eachsession corresponding to an identification of the user to a computersystem for the purpose of receiving access to that computer system.

The computer program product includes an optional feature whereby theother users include a subset of all users of a website who meet at leastone criteria indicating success of the user or of an operator of thewebsite.

The computer program product includes an optional feature whereby thetwo or more other actions is identified responsive to a type of theuser.

The computer program product includes an optional feature whereby: thetwo or more other actions include a sequence of other actions; thethreshold is responsive to other users performing in the sequence thetwo or more other actions; and the computer readable program codedevices configured to cause the computer system to monitoring areresponsive to the user performing in the sequence the at least one ofthe other actions.

The computer program product includes an optional feature whereby thecomputer readable program code devices configured to cause the computersystem to perform at least one selected from the set of actions includecomputer readable program code devices configured to cause the computersystem to provide the instructions, said instructions including asequence of instructions regarding two or more steps in performing theprimary action.

What is claimed is:
 1. A method of making recommendations to a user,comprising: identifying, for each of at least one first piece ofinformation, a first set of at least one value of said piece ofinformation and a second piece of information, wherein a first subset ofa plurality of other users who supplied a value in the first set for thefirst piece of information and who supplied a value in a second set ofat least one value for the second piece of information had a higherprobability of achieving a goal than a second subset of the plurality ofother users who supplied the value in the first set for the first pieceof information but did not supply any value in the second set for thesecond piece of information; monitoring, via a computer systemcomprising a hardware processor coupled to a memory, values of pieces ofinformation provided by the user; for the value of each of at least someof the pieces of information monitored: determining whether said pieceof information is one of the at least one first piece of information,and responsive to said piece of information determined to be one of theat least one first piece of information, determining whether said valueof said piece of information is in the first set of values; responsiveto said piece of information determined to be one of the at least onefirst piece of information and said value of said piece of informationdetermined to be in the first set of at least one value, determiningwhether a value of any other of the pieces of information monitored isin the second set; and responsive to said value of said piece ofinformation determined to be in the first set and the value of any otherof the pieces of information determined not to be in the second set,prompting the user to supply a value in the second set for at least oneof the other pieces of information.
 2. The method of claim 1, whereinthe second set of at least one value includes all possible user-suppliedvalues, such that only any other of the pieces of information that donot include any such user-supplied value is not in the second set. 3.The method of claim 1, wherein the second set of at least one valueexcludes a non-committal value.
 4. The method of claim 1, wherein eachsecond piece of information is text based.
 5. The method of claim 1,additionally comprising providing statistics regarding the achieving ofthe goal for at least one of the subsets.
 6. The method of claim 1,additionally comprising providing statistics regarding the achieving ofthe goal for both of the subsets.
 7. A system for making recommendationsto a user, comprising: an information pair identifier having an inputfor receiving, for each of at least one first piece of information, afirst set of at least one value of said piece of information and asecond piece of information, wherein a first subset of a plurality ofother users who supplied a value in the first set for the first piece ofinformation and who supplied a value in a second set of at least onevalue for the second piece of information had a higher probability ofachieving a goal than a second subset of the plurality of other userswho supplied a value in the first set for the first piece of informationbut did not supply any value in the second set for the second piece ofinformation, the information pair identifier for providing at an outputthe first set of at least one value and an identifier of the secondpiece of information for each of the at least one first piece ofinformation; a pair check manager comprising a hardware processorcoupled to a memory and having an input coupled to the information pairidentifier output for receiving the first set of at least one value andthe identifier of the second piece of information for each of the atleast one first piece of information, for monitoring, values of piecesof information provided by the user, the pair check manager for, for thevalue of each of at least some of the pieces of information monitored:determining whether said piece of information is one of the at least onefirst piece of information, and responsive to said piece of informationdetermined to be one of the at least one first piece of information,determining whether said value of said piece of information is in thefirst set of at least one value; responsive to said piece of informationdetermined to be one of the at least one first piece of information andsaid value of said piece of information determined to be in the firstset of at least one value, determining whether a value of any other ofthe pieces of information supplied by the user is in the second set; andproviding at an output an indicator having a first state responsive tosaid value of said piece of information determined to be in the firstset and the value of any other of the pieces of information monitoreddetermined not to be in the second set, and a second state responsive tothe value of said piece of information determined to be not in the firstset, or said value of said piece of information determined to be in thefirst set and the value of any of the other pieces of informationmonitored determined to be in the second set; and a notification managerhaving an input coupled to the pair check manager output for receivingeach indicator, the notification manager for, responsive to theindicator having the first state, prompting via an output for the userto supply a value in the second set for at least one of the other piecesof information.
 8. The system of claim 7, wherein the second set of atleast one value includes all possible user-supplied values, such thatonly any other of the pieces of information that do not include anyuser-supplied value is not in the second set.
 9. The system of claim 7wherein the second set of at least one value excludes a non-committalvalue.
 10. The system of claim 7, wherein each second piece ofinformation is text based.
 11. The system of claim 7, wherein thenotification manager is additionally for providing, at the notificationmanager output, statistics regarding the achieving of the goal for atleast one of the subsets.
 12. The system of claim 7, wherein thenotification manager is additionally for providing, at the notificationmanager output, statistics regarding the achieving of the goal for bothof the subsets.
 13. A computer program product comprising anon-transitory computer useable medium having computer readable programcode embodied therein for of making recommendations to a user, thecomputer program product comprising computer readable program codedevices configured to cause a computer system to: identify, for each ofat least one first piece of information, a first set of at least onevalue of said piece of information and a second piece of information,wherein a first subset of a plurality of other users who supplied avalue in the first set for the first piece of information and whosupplied a value in a second set of at least one value for the secondpiece of information had a higher probability of achieving a goal than asecond subset of the plurality of other users who supplied the value inthe first set for the first piece of information but did not supply anyvalue in the second set for the second piece of information; monitorvalues of pieces of information provided by the user; and for the valueof each of at least some of the pieces of information monitored:determine whether said piece of information is one of the at least onefirst piece of information, and responsive to said piece of informationbeing one of the at least one first piece of information, determinewhether said value of said piece of information is in the first set ofvalues; responsive to said piece of information determined to be one ofthe at least one first piece of information and said value of said pieceof information determined to be in the first set of at least one value,determine whether a value of any other of the pieces of informationmonitored is in the second set; and responsive to said value of saidpiece of information determined to be in the first set and the value ofthe second piece of information determined not to be in the second set,prompt the user to supply a value in the second set for at least one ofthe other pieces of information.
 14. The computer program product ofclaim 13, wherein the second set of at least one value includes allpossible user-supplied values, such that only any other of the pieces ofinformation that do not include any user-supplied value is not in thesecond set.
 15. The computer program product of claim 13, wherein thesecond set of at least one value excludes a non-committal value.
 16. Thecomputer program product of claim 13, wherein each second piece ofinformation is text based.
 17. The computer program product of claim 13,additionally comprising computer readable program code devicesconfigured to cause the computer system to provide statistics regardingthe achieving of the goal for at least one of the subsets.
 18. Thecomputer program product of claim 13, additionally comprising computerreadable program code devices configured to cause the computer system toprovide statistics regarding the achieving of the goal for both of thesubsets.